I solved ‘Property ‘get’ does not exist on type ‘FastifyInstance<Server<typeof IncomingMessage, typeof ServerResponse>, IncomingMessage, ServerResponse<IncomingMessage>, FastifyBaseLogger, FastifyTypeProviderDefault> & PromiseLike<...>” error

I solved ‘Property ‘get’ does not exist on type ‘FastifyInstance<Server<typeof IncomingMessage, typeof ServerResponse>, IncomingMessage, ServerResponse<IncomingMessage>, FastifyBaseLogger, FastifyTypeProviderDefault> & PromiseLike<...>” error

Clock Icon2023.11.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Hi, this is Charu from Classmethod. In this short blog, we will be solving the Property 'get' does not exist on type 'FastifyInstance, IncomingMessage, ServerResponse, FastifyBaseLogger, FastifyTypeProviderDefault> & PromiseLike<...>' error.

Before moving on, I will show you the simple code which I wrote,

source.ts

import { fastify, FastifyReply, FastifyRequest } from "fastify";

const server = fastify({ logger: true });

server.get("/", async (request: FastifyRequest, reply: FastifyReply) => {
  return { greeting: "Hello from Fastify and TypeScript!" };
});

const start = async () => {
  try {
    await server.listen({ port: 8888 });
  } catch (err) {
    server.log.error(err);
    process.exit(1);
  }
};

start();

tsconfig.json

{
    "compilerOptions": {
        "target": "es2018",
        "module": "commonjs",
        "moduleResolution": "node",
        "outDir": "./dist",
        "esModuleInterop": true,
        "strict": true,
        "skipLibCheck": true,
    },
    "include": [
        "src/**/*"
    ],
    "exclude": [
        "node_modules"
    ]
}

Everything looks fine and the code works properly. But still, I was getting the error at server.get("/" statement.

I went through Google and got my solution in the Fastify official document.

My Typescript module was 'CommonJS' while I was importing Fastify according to ESmodules. Hence, I changed the import statement and the error was gone:D

Below is my final code with no errors.

const fastify = require("fastify")({ logger: true });

fastify.get("/", async (request: any, reply: any) => {
  return { greeting: "Hello from Fastify and TypeScript!" };
});

const start = async () => {
  try {
    await fastify.listen({ port: 8888 });
  } catch (err) {
    fastify.log.error(err);
    process.exit(1);
  }
};

start();

I hope this blog helped you too.

Thank you for reading!

Happy Learning:)

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.